#ifndef ATTENDANCEMANAGER_H
#define ATTENDANCEMANAGER_H

#include <QObject>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDate>
#include <QDebug>
#include <QSqlQueryModel>

// Qt Charts 头文件
#include <QtCharts>

class AttendanceManager : public QObject {
    Q_OBJECT

public:
    explicit AttendanceManager(QObject *parent = nullptr);
    ~AttendanceManager();

    // 初始化数据库
    bool initializeDatabase(const QString &dbName = "attendance.db");

    // 添加考勤记录
    bool addAttendanceRecord(int employeeId, const QString &employeeName,
                           const QDate &date, const QTime &checkIn,
                           const QTime &checkOut, const QString &status);

    // 查询某日考勤记录
    QSqlQueryModel* getDailyRecords(const QDate &date);

    // 查询月度考勤统计
    QChart* getMonthlySummary(int year, int month);

    // 获取所有员工列表
    QSqlQueryModel* getAllEmployees();

    // 删除考勤记录
    bool deleteRecord(int recordId);

private:
    QSqlDatabase m_db;

    // 创建数据库表结构
    void createTables();

    // 检查数据库连接
    bool checkDatabaseConnection();
};

#endif // ATTENDANCEMANAGER_H
